/**
 * 实现给定N个字符串，再给定Q个操作：
 *   1 s: 插入s
 *   2: 字符串去重，即每种字符串只保留一个，输出去重的数量
 * 题面说有空行，直接使用cin会出错。需要开同步，然后用scanf。
 * 或者全部都用scanf
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = unsigned long long;
using pii = pair<int, int>;
using vi = vector<int>;

int N, Q;
set<string> SS;
int Total = 0, Unique = 0;

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    // ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    // cin >> nofkase;
    while(nofkase--){
        cin >> N >> Q;
        for(int i=0;i<N;++i){
            string s; cin >> s;
            auto it = SS.find(s);
            if(it == SS.end()){
                ++Unique; ++Total;
                SS.insert(it, s);
            }else{
                ++Total;
            }
        }
        for(int op,q=1;q<=Q;++q){
            scanf("%d", &op);
            if(1 == op){
                string s; cin >> s;
                auto it = SS.find(s);
                if(it == SS.end()){
                    ++Unique; ++Total;
                    SS.insert(it, s);
                }else{
                    ++Total;
                }                
            }else{
                cout << Total - Unique << endl;
                Total = Unique;
            }
        }
    }
    return 0;
}